<!doctype html>
<!--
@license
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
  <meta charset="utf-8">
  <script src="../../../web-component-tester/browser.js"></script>
  <script src="../../../webcomponentsjs/webcomponents-lite.js"></script>
  <script>
  /* global origOwnProps:true */
    window.origOwnProps = Object.getOwnPropertyNames(window).reduce(function(props, prop) {
      return props[prop] = true && props;
    }, {});
  </script>
  <link rel="import" href="../../polymer.html">
<body>

<script>

suite('globals', function() {

  var expected = {
    origOwnProps: true,

    // Test harness
    a11ySuite: true,
    assert: true,
    expect: true,
    run: true,
    fixture: true,
    replace: true,
    stub: true,

    // Polymer
    Polymer: true,
    currentImport: true,

    // weird safari + selenium globals
    alert: true,
    confirm: true,
    prompt: true
  };

  test('check global leakage', function() {
    var newProps = Object.getOwnPropertyNames(window).filter(function(prop) {
      return !origOwnProps[prop] && !expected[prop];
    });
    assert.equal(newProps.length, 0, 'new globals added: \n' + newProps.sort().join('\n'));
  });

});

</script>

</body>
</html>
